From db1cccd9cee830f8822521f2c401ea74ad161360 Mon Sep 17 00:00:00 2001
From: Jonathan Scruggs <j.scruggs@gmail.com>
Date: Mon, 25 Sep 2017 17:41:26 +0100
Subject: [PATCH] CTL: Use GNUInstallDirs and fix PkgConfig files

* GNUInstallDirs are variables set by each distro and OS, so we
  don't need to define them manually. They can also be set manually
  during the configure phase. The code to define custom directories can
  be removed and replaced with the equivalent GNUInstallDirs variable.
* Pkg-Config is used to find IlmBase and OpenEXR, but isn't fully
  utilized everywhere. This makes Pkg-Config a hard dependency so that
  the libraries and directories can be found easily. This will use the
  correct libraries no matter how they are named, so this is compatible
  with both pre-2.0 and post 2.0 naming schemes.
* The Pkg-Config files had several errors that are now fixed.

Upstream PR: https://github.com/ampas/CTL/pull/67
---
 CMakeLists.txt                         | 36 ++++++++---------------------
 OpenEXR_CTL/CMakeLists.txt             |  2 +-
 OpenEXR_CTL/CtlModules/CMakeLists.txt  |  2 +-
 OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt |  4 ++--
 OpenEXR_CTL/exrdpx/CMakeLists.txt      |  4 ++--
 config/CTL.pc.in                       |  8 +++----
 config/OpenEXR_CTL.pc.in               | 15 ++++++-------
 configure.cmake                        | 41 ++++++++++++++++------------------
 ctlrender/CMakeLists.txt               | 20 ++++++++---------
 doc/CMakeLists.txt                     |  2 +-
 lib/IlmCtl/CMakeLists.txt              |  4 ++--
 lib/IlmCtlMath/CMakeLists.txt          |  4 ++--
 lib/IlmCtlSimd/CMakeLists.txt          |  6 ++---
 lib/IlmImfCtl/CMakeLists.txt           |  6 ++---
 lib/dpx/CMakeLists.txt                 |  1 +
 15 files changed, 66 insertions(+), 89 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 01f622c..35e9a48 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,22 +1,14 @@
 cmake_minimum_required(VERSION 2.8)
 project( CTL )
 
+INCLUDE ( GNUInstallDirs )
+
 set( CTL_MAJOR_VERSION 1 )
 set( CTL_MINOR_VERSION 5 )
-set( CTL_PATCH_VERSION 0 )
+set( CTL_PATCH_VERSION 2 )
 set( CTL_VERSION ${CTL_MAJOR_VERSION}.${CTL_MINOR_VERSION}.${CTL_PATCH_VERSION} )
 
-## Make install directories overrideable
-set( INSTALL_LIB_DIR lib CACHE PATH "Install directory for libraries" )
-set( INSTALL_BIN_DIR bin CACHE PATH "Install directory for executable binaries" )
-set( INSTALL_INCLUDE_DIR include CACHE PATH "Install directory for public header files" )
-set( INSTALL_DOC_DIR doc CACHE PATH "Install directory for documentation" )
-if( WIN32 AND NOT CYGWIN )
-  set(DEF_INSTALL_CMAKE_DIR CMake)
-else()
-  set(DEF_INSTALL_CMAKE_DIR lib/CMake/CTL)
-endif()
-set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Install directory for project CMake files" )
+set(INSTALL_CMAKE_DIR ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/CTL CACHE PATH "Install directory for project CMake files" )
 
 # use, i.e. don't skip the full RPATH for the build tree
 SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
@@ -28,20 +20,11 @@ SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
 # which point to directories outside the build tree to the install RPATH
 SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
 # the RPATH to be used when installing, but only if it's not a system directory
-LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir)
+LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_FULL_LIBDIR}" isSystemDir)
 IF("${isSystemDir}" STREQUAL "-1")
-  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+  SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}")
 ENDIF("${isSystemDir}" STREQUAL "-1")
 
-
-## convert install paths to absolute
-foreach( p LIB BIN INCLUDE CMAKE DOC)
-  set( var INSTALL_${p}_DIR )
-  if( NOT IS_ABSOLUTE "${${var}}" )
-    set( ${var} "${CMAKE_INSTALL_PREFIX}/${${var}}" )
-  endif()
-endforeach()
-
 option(ENABLE_SHARED "Enable Shared Libraries" ON)
 
 if ( ENABLE_SHARED )
@@ -70,20 +53,19 @@ export( TARGETS IlmCtl IlmCtlMath IlmCtlSimd FILE "${PROJECT_BINARY_DIR}/CTLLibr
 export(PACKAGE CTL)
  
 # Create a CTLBuildTreeSettings.cmake file for the use from the build tree
-file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}")
+file(RELATIVE_PATH CONF_REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
 configure_file(config/CTLBuildTreeSettings.cmake.in "${PROJECT_BINARY_DIR}/CTLBuildTreeSettings.cmake" @ONLY)
 configure_file(config/CTLConfig.cmake.in "${PROJECT_BINARY_DIR}/CTLConfig.cmake" @ONLY)
 configure_file(config/CTLConfigVersion.cmake.in "${PROJECT_BINARY_DIR}/CTLConfigVersion.cmake" @ONLY)
 
 if ( PKG_CONFIG_FOUND )
 configure_file(config/CTL.pc.in "${PROJECT_BINARY_DIR}/CTL.pc" @ONLY)
-install( FILES "${PROJECT_BINARY_DIR}/CTL.pc" DESTINATION lib/pkgconfig COMPONENT dev )
+install( FILES "${PROJECT_BINARY_DIR}/CTL.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT dev )
 endif()
 
 install( FILES
   "${PROJECT_BINARY_DIR}/CTLConfig.cmake"
   "${PROJECT_BINARY_DIR}/CTLConfigVersion.cmake"
+  "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake"
   DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
-install(FILES "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake" DESTINATION
-  "${INSTALL_CMAKE_DIR}" COMPONENT dev)
 
diff --git a/OpenEXR_CTL/CMakeLists.txt b/OpenEXR_CTL/CMakeLists.txt
index c1ca53e..3f19dd4 100644
--- a/OpenEXR_CTL/CMakeLists.txt
+++ b/OpenEXR_CTL/CMakeLists.txt
@@ -13,7 +13,7 @@ add_custom_target( OpenEXR_CTL DEPENDS CtlModules exrdpx exr_ctl_exr )
 
 if ( PKG_CONFIG_FOUND )
 configure_file(../config/OpenEXR_CTL.pc.in "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" @ONLY)
-install( FILES "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" DESTINATION lib/pkgconfig COMPONENT dev )
+install( FILES "${PROJECT_BINARY_DIR}/OpenEXR_CTL.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT dev )
 endif()
 
 # TODO CMake config
diff --git a/OpenEXR_CTL/CtlModules/CMakeLists.txt b/OpenEXR_CTL/CtlModules/CMakeLists.txt
index c63c22e..9c9e5b8 100644
--- a/OpenEXR_CTL/CtlModules/CMakeLists.txt
+++ b/OpenEXR_CTL/CtlModules/CMakeLists.txt
@@ -2,6 +2,6 @@ install(
     FILES
         utilities.ctl
     DESTINATION 
-        ${INSTALL_LIB_DIR}/CTL
+        ${CMAKE_INSTALL_LIBDIR}/CTL
 )
 
diff --git a/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt b/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
index e396ec5..1f0eea0 100644
--- a/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
+++ b/OpenEXR_CTL/exr_ctl_exr/CMakeLists.txt
@@ -20,6 +20,6 @@ target_link_libraries( exr_ctl_exr IlmCtlSimd IlmCtlMath IlmCtl IlmImfCtl )
 target_link_libraries( exr_ctl_exr ${IlmBase_LIBRARIES} ${IlmBase_LDFLAGS_OTHER} )
 target_link_libraries( exr_ctl_exr ${OpenEXR_LIBRARIES} ${OpenEXR_LDFLAGS_OTHER} )
 
-install( TARGETS exr_ctl_exr DESTINATION ${INSTALL_BIN_DIR} )
+install( TARGETS exr_ctl_exr DESTINATION ${CMAKE_INSTALL_BINDIR} )
 
-install( FILES change_saturation.ctl DESTINATION ${INSTALL_LIB_DIR}/CTL )
+install( FILES change_saturation.ctl DESTINATION ${CMAKE_INSTALL_LIBDIR}/CTL )
diff --git a/OpenEXR_CTL/exrdpx/CMakeLists.txt b/OpenEXR_CTL/exrdpx/CMakeLists.txt
index 50bd116..d9eadd8 100644
--- a/OpenEXR_CTL/exrdpx/CMakeLists.txt
+++ b/OpenEXR_CTL/exrdpx/CMakeLists.txt
@@ -20,8 +20,8 @@ target_link_libraries( exrdpx IlmCtlSimd IlmCtlMath IlmCtl IlmImfCtl )
 target_link_libraries( exrdpx ${IlmBase_LIBRARIES} ${IlmBase_LDFLAGS_OTHER} )
 target_link_libraries( exrdpx ${OpenEXR_LIBRARIES} ${OpenEXR_LDFLAGS_OTHER} )
 
-install( TARGETS exrdpx DESTINATION ${INSTALL_BIN_DIR} )
+install( TARGETS exrdpx DESTINATION ${CMAKE_INSTALL_BINDIR} )
 
-install( FILES transform_DPX_EXR.ctl transform_EXR_DPX.ctl DESTINATION ${INSTALL_LIB_DIR}/CTL )
+install( FILES transform_DPX_EXR.ctl transform_EXR_DPX.ctl DESTINATION ${CMAKE_INSTALL_LIBDIR}/CTL )
 
 
diff --git a/config/CTL.pc.in b/config/CTL.pc.in
index 6d6e732..9b212a4 100644
--- a/config/CTL.pc.in
+++ b/config/CTL.pc.in
@@ -1,8 +1,6 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=@INSTALL_BIN_DIR@
-libdir=@INSTALL_LIB_DIR@
-includedir=@INSTALL_INCLUDE_DIR@
-CTL_includedir=@INSTALL_INCLUDE_DIR@/CTL
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+CTL_includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/CTL
 
 Name: CTL
 Description: CTL interpreter library
diff --git a/config/OpenEXR_CTL.pc.in b/config/OpenEXR_CTL.pc.in
index 4cef5c6..39a1a3f 100644
--- a/config/OpenEXR_CTL.pc.in
+++ b/config/OpenEXR_CTL.pc.in
@@ -1,11 +1,10 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-OpenEXR_includedir=@includedir@/OpenEXR
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+OpenEXR_includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@/OpenEXR
 
 Name: OpenEXR_CTL
 Description: Simplified OpenEXR interface to CTL
-Version: @OPENEXR_CTL_VERSION@
-Libs: -L${libdir} -lIlmImfCtl @OPENEXR_LDFLAGS@ @CTL_LDFLAGS@
-Cflags: @CTL_CXXFLAGS_PC@ @OPENEXR_CXXFLAGS@ -I${OpenEXR_includedir}
+Version: @CTL_VERSION@
+Libs: -L${libdir} -lIlmImfCtl
+Cflags: -I${OpenEXR_includedir}
+Requires: CTL,OpenEXR
diff --git a/configure.cmake b/configure.cmake
index 1817071..eb7e14e 100644
--- a/configure.cmake
+++ b/configure.cmake
@@ -1,10 +1,7 @@
-# Until we get some of these modules into the upstream packages, put them here
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
-set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_INSTALL_PREFIX}/share/CMake")
+# Make Pkg-Config required.
+find_package( PkgConfig )
 
-find_package( PkgConfig QUIET )
-
-find_package( IlmBase QUIET )
+PKG_CHECK_MODULES ( IlmBase REQUIRED IlmBase )
 if(IlmBase_FOUND)
   message( STATUS "found IlmBase, version ${IlmBase_VERSION}" )
   ###
@@ -13,11 +10,11 @@ if(IlmBase_FOUND)
   ###
   include_directories( ${IlmBase_INCLUDE_DIRS} )
   link_directories( ${IlmBase_LIBRARY_DIRS} )
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${IlmBase_CFLAGS}" )
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IlmBase_CFLAGS}" )
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
-  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
-  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${IlmBase_LDFLAGS}" )
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${IlmBase_CFLAGS_OTHER}" )
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${IlmBase_CFLAGS_OTHER}" )
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
+  set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
+  set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} ${IlmBase_LDFLAGS_OTHER}" )
 else()
   message( SEND_ERROR "IlmBase not found, please set the include and library paths manually" )
 endif()
@@ -39,20 +36,20 @@ else()
   endif()
 endif()
 
-find_package( OpenEXR QUIET )
+PKG_CHECK_MODULES ( OpenEXR REQUIRED OpenEXR )
 if (OpenEXR_FOUND)
   message( STATUS "Found OpenEXR, version ${OpenEXR_VERSION}" )
 else()
   message( WARNING "Unable to find OpenEXR libraries, disabling" )
 endif()
 
-find_package( AcesContainer )
-if (AcesContainer_FOUND)
-  message( STATUS "Found AcesContainer, version ${AcesContainer_VERSION}" )
-else()
-  if ( PKG_CONFIG_FOUND )
-    pkg_check_modules( AcesContainer AcesContainer )
-  else()
-    message( WARNING "Unable to find AcesContainer libraries, disabling" )
-  endif()
-endif()
+find_package( AcesContainer )		
+ if (AcesContainer_FOUND)		
+   message( STATUS "Found AcesContainer, version ${AcesContainer_VERSION}" )		
+ else()		
+   if ( PKG_CONFIG_FOUND )		
+     pkg_check_modules( AcesContainer AcesContainer )		
+   else()		
+     message( WARNING "Unable to find AcesContainer libraries, disabling" )		
+   endif()		
+ endif()
diff --git a/ctlrender/CMakeLists.txt b/ctlrender/CMakeLists.txt
index 9fced14..d97093d 100644
--- a/ctlrender/CMakeLists.txt
+++ b/ctlrender/CMakeLists.txt
@@ -11,12 +11,12 @@ include_directories( ${OpenEXR_INCLUDE_DIRS} )
 link_directories( ${OpenEXR_LIBRARY_DIRS} )
 endif()
 
-if ( AcesContainer_FOUND )
-add_definitions( -DHAVE_ACESFILE=1 )
-include_directories( ${AcesContainer_INCLUDE_DIRS} )
-link_directories( ${AcesContainer_LIBRARY_DIRS} )
-endif()
-
+if ( AcesContainer_FOUND )		
+add_definitions( -DHAVE_ACESFILE=1 )		
+include_directories( ${AcesContainer_INCLUDE_DIRS} )		
+link_directories( ${AcesContainer_LIBRARY_DIRS} )		
+endif()		
+ 
 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/lib/IlmCtl" "${PROJECT_SOURCE_DIR}/lib/IlmCtlMath" "${PROJECT_SOURCE_DIR}/lib/IlmCtlSimd" "${PROJECT_SOURCE_DIR}/lib/dpx" )
 
 add_executable( ctlrender
@@ -41,9 +41,9 @@ if (OpenEXR_FOUND)
 target_link_libraries( ctlrender ${OpenEXR_LIBRARIES} )
 target_link_libraries( ctlrender ${OpenEXR_LDFLAGS_OTHER} )
 endif()
-if (AcesContainer_FOUND)
-target_link_libraries( ctlrender ${AcesContainer_LIBRARIES} )
-target_link_libraries( ctlrender ${AcesContainer_LDFLAGS_OTHER} )
+if (AcesContainer_FOUND)		
+target_link_libraries( ctlrender ${AcesContainer_LIBRARIES} )		
+target_link_libraries( ctlrender ${AcesContainer_LDFLAGS_OTHER} )		
 endif()
 
-install( TARGETS ctlrender DESTINATION bin )
+install( TARGETS ctlrender DESTINATION ${CMAKE_INSTALL_BINDIR} )
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index 0b123d0..9776205 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -1 +1 @@
-install( FILES CtlManual.pdf CtlManual.doc DESTINATION doc/CTL )
+install( FILES CtlManual.pdf CtlManual.doc DESTINATION ${CMAKE_INSTALL_DOCDIR} )
diff --git a/lib/IlmCtl/CMakeLists.txt b/lib/IlmCtl/CMakeLists.txt
index 3672a43..ef301bd 100644
--- a/lib/IlmCtl/CMakeLists.txt
+++ b/lib/IlmCtl/CMakeLists.txt
@@ -22,7 +22,7 @@ add_library( IlmCtl ${DO_SHARED}
 )
 
 target_link_libraries( IlmCtl ${IlmBase_LDFLAGS_OTHER} )
-target_link_libraries( IlmCtl Iex IlmThread Half )
+target_link_libraries( IlmCtl ${IlmBase_LIBRARIES} )
 
 set_target_properties( IlmCtl PROPERTIES
   VERSION ${CTL_VERSION}
@@ -50,4 +50,4 @@ install( FILES
 	CtlVersion.h
  DESTINATION include/CTL )
 
-install( TARGETS IlmCtl DESTINATION lib )
+install( TARGETS IlmCtl DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/IlmCtlMath/CMakeLists.txt b/lib/IlmCtlMath/CMakeLists.txt
index 96738cf..6997c74 100644
--- a/lib/IlmCtlMath/CMakeLists.txt
+++ b/lib/IlmCtlMath/CMakeLists.txt
@@ -18,8 +18,8 @@ install( FILES
   CtlLookupTable.h
   CtlRbfInterpolator.h
   CtlSparseMatrix.h
- DESTINATION include/CTL )
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CTL )
 
-install( TARGETS IlmCtlMath DESTINATION lib )
+install( TARGETS IlmCtlMath DESTINATION ${CMAKE_INSTALL_LIBDIR} )
 
 # TODO Add Imath and Iex libadd dependency and version info
diff --git a/lib/IlmCtlSimd/CMakeLists.txt b/lib/IlmCtlSimd/CMakeLists.txt
index 2ba792a..5eaf87d 100644
--- a/lib/IlmCtlSimd/CMakeLists.txt
+++ b/lib/IlmCtlSimd/CMakeLists.txt
@@ -1,7 +1,7 @@
 include_directories( "${CMAKE_CURRENT_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}/lib/IlmCtl" "${PROJECT_SOURCE_DIR}/lib/IlmCtlMath" )
 
 add_executable( halfExpLogTable halfExpLogTable.cpp )
-target_link_libraries( halfExpLogTable Half )
+target_link_libraries( halfExpLogTable ${IlmBase_LIBRARIES} )
 
 add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/halfExpLogTable.h"
                     COMMAND halfExpLogTable "${CMAKE_CURRENT_BINARY_DIR}/halfExpLogTable.h" "${CMAKE_CURRENT_BINARY_DIR}/halfExpLog.h"
@@ -40,6 +40,6 @@ set_target_properties( IlmCtlSimd PROPERTIES
   SOVERSION ${CTL_VERSION}
 )
 
-install( FILES CtlSimdInterpreter.h DESTINATION include/CTL )
+install( FILES CtlSimdInterpreter.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/CTL )
 
-install( TARGETS IlmCtlSimd DESTINATION lib )
+install( TARGETS IlmCtlSimd DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/IlmImfCtl/CMakeLists.txt b/lib/IlmImfCtl/CMakeLists.txt
index 47563df..784e27f 100644
--- a/lib/IlmImfCtl/CMakeLists.txt
+++ b/lib/IlmImfCtl/CMakeLists.txt
@@ -7,10 +7,10 @@ add_library( IlmImfCtl ${DO_SHARED}
   ImfCtlCopyFunctionArg.cpp
 )
 
-target_link_libraries( IlmImfCtl IlmCtl IlmImf Iex IlmThread Half )
+target_link_libraries( IlmImfCtl IlmCtl ${OpenEXR_LIBRARIES} ${IlmBase_LIBRARIES} )
 
-install( FILES ImfCtlApplyTransforms.h DESTINATION include/OpenEXR )
+install( FILES ImfCtlApplyTransforms.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/OpenEXR )
 
 export( TARGETS IlmImfCtl IlmCtl FILE "${PROJECT_BINARY_DIR}/CTLLibraryDepends.cmake" )
 
-install( TARGETS IlmImfCtl DESTINATION lib )
+install( TARGETS IlmImfCtl DESTINATION ${CMAKE_INSTALL_LIBDIR} )
diff --git a/lib/dpx/CMakeLists.txt b/lib/dpx/CMakeLists.txt
index c8be26e..918890e 100644
--- a/lib/dpx/CMakeLists.txt
+++ b/lib/dpx/CMakeLists.txt
@@ -11,3 +11,4 @@ add_library( ctldpx
  dpx_rw.cc
 )
 
+target_link_libraries( ctldpx ${IlmBase_LIBRARIES} )
